Various methods and apparatuses have conventionally been proposed for color correction of a digital color image. In many color correction processes, the color is managed and corrected in terms of “three attributes of color”, i.e., brightness Y, hue angle H, and saturation S. A representative example is an L*a*b* color space. In this color space, the color can be processed by means of the three attributes, and the color can be intuitively managed and grasped. Digital color data is generally managed by R, G, and B signals. In practice, it is difficult theoretically to manage the color by means of these R, G, and B signals in color correction. For example, in the L*a*b* color space, the saturation S and hue angle H are obtained byS=(a*2+b*2)1/2 H=tan−1(b*/a*)
Calculation of the saturation and hue angle using these equations requires calculations using a root function and trigonometric function. When these functions are calculated by, e.g., software running on a personal computer, a standard function such as those in the C language can be utilized, but “floating-point calculation” is generally required. In a system which cannot adopt “floating-point calculation”, the function is realized by an algorithm such as “extraction of square root” which realizes the root calculation by means of arithmetic involving only integer calculation. Alternatively, the trigonometric function is tabled as far as necessary precision can be maintained, and the calculation result of the trigonometric function is obtained by looking it up the table.
The above-mentioned “floating-point calculation” generally involves a large processing load, and an algorithm using only substitute integer calculation requires a still larger one. As described above, the saturation and hue are the most fundamental elements in color correction, and the load necessary for conversion processing depends on the number of pixels of a digital image. That is, the processing load increases along with an increase in the number of pixels. It is, therefore, very important to obtain the saturation and hue efficiently and at high speed.
By giving attention to the fact that the saturation S and hue angle H can be calculated from the two color difference signals a* and b*, it can be easily anticipated that the calculation speed can be increased by means of a two-dimensional lookup table (to be referred to as an “LUT” hereinafter) capable of containing the maximum and minimum values of each element. This method, however, requires a very large memory, and is inefficient.